
local 回调 = class()
function onCheckedSelf()
	print("connected")
	ccc_send(31415926, 2020, 4, 1, 'v')
end

function onRegiste(toast)
	if #toast > 0 then
		tp.提示:写入('#y/' .. toast)
		return
	end
	tp.进程 = 1
end

function onReceive(order, typ, content)
	-- if order ~= 8 and order ~= 1002 and order ~= 1005 then
	-- 	print("数据到达  " .. order .. ' ' .. typ .. ' ' .. content)
	-- end
	if typ == 1 then content = tonumber(content)
	elseif typ == 3 then content = table.loadstring(content)
	end
	客户端:数据到达(order, content, nil)
end

function onShutdown()
	客户端连接断开()
end



function 回调:初始化()
	self.连接账号 = ""
	self.连接密码 = ""
	self.连接结果 = false
end

function 回调:更新(dt)
end

function 回调:重新连接(ip, 端口, 账号, 密码)
	停止连接 = true

	if false and self:连接(self.连接ip, self.连接端口) then
		连接状态 = true
		停止连接 = false
		重连状态 = true
	else
		连接状态 = false
		停止连接 = false
	end
end

function 回调:连接处理(ip, 端口)
	-- setCriticalSection(__gge.cs)
	ccc_start("127.0.0.1", 0xFEDC)
end

function 回调:发送数据(参数,序号,order,文本)
 -- if true then
 	local ty = type(文本)
 	if ty == 'number' then
 		文本 = tostring(文本)
 		ty = 1
 	elseif ty == 'string' then
 		ty = string.find(文本, "local") and 3 or 2
 	elseif ty == 'table' then
 		文本 = table.tostring(文本)
 		ty = 3
 	else
 		文本 = 'nil'
 		ty = 0
 	end
 	-- print('发送数据 ' .. order .. ' ' .. 文本)
 	ccc_send(order, 序号, 参数, ty, 文本)
end


function 回调:取状态(连接)
	return self:取状态()
end

function 回调:断开连接(连接)
	禁止重连 = true
	-- self:断开()
end



function 回调:数据到达(序号, 内容, 时间)
	-- 10 时间
	-- 1002 添加移动路径
	-- 1005 添加路径
	-- if 序号 ~= 10 and 序号 ~= 1002 and 序号 ~= 1005 then
	-- 	print("数据到达  " .. 序号 .. "    " .. (内容 or ""))
	-- end
	if 序号 == 2 or 序号 == 3 then
		self:断开连接()
		ffi函数.信息框(内容, "下线通知")
		引擎.关闭()
	elseif 序号 == 99995 then
		os.exit()
	elseif 序号 == 99996 then
		self:断开连接()
	elseif 序号 == 9998 then
		 self:断开连接()
	     信息框(内容,"下线通知")
	     引擎.关闭()
	elseif 序号 == 4 then
		tp.进程=4
	elseif 序号 == 5 then
		tp.登录处理类:销毁()
		检测2 = 引擎.取游戏时间()
		窗口大小 = {x = 160,y = 120}
		yxjc = 2
		tp.屏幕.主角:创建角色(内容)
		tp.窗口.人物框:刷新角色头像()
		-- tp.主界面.快捷技能显示 =true
        tp.窗口.时辰.偏移坐标 = -64
        -- tp.窗口.时辰.矩阵:置坐标(0,-64)
        local chat = tp.窗口.聊天框类
        chat:添加文本("由于鼠标点击层次穿透问题，请#y/尽量避免#w/UI界面重叠，以免误触操作")
    elseif 序号 == 6 then
    	内容 = os.date("%m", 内容) .. "月" .. os.date("%d", 内容) .. "日 " .. os.date("%X", 内容)
    	tp.窗口.聊天框类:添加文本("#xt/#y/上次登录:#r/" .. 内容)
	elseif 序号 == 7 then
		tp.提示:写入(内容)
    elseif 序号 == 8 then
    	self.传送数据 = 内容.传送数据
    	self.NPC数据 = 内容.NPC数据
    	self.地图数据 = 内容.地图数据
	elseif 序号 == 10 then
		时间差 = 内容 - os.time()
		-- print(时间差)
		更改窗口标题(内容)
		-- "新丝滑" .. "-(" ..
		引擎.置标题(窗口标题.名称 .. " [" .. 窗口标题.id .. "]") --)
		ccc_timeId(时间差, 窗口标题.id)
		客户端:发送数据(1, 1, 9961, "kjl", 1)
	elseif 序号 == 99997 then
		tp.主界面.界面数据[15]:添加公告内容(内容,true)
	elseif 序号 == 11 then
		tp.窗口.当前时辰 = 内容 + 0
	elseif 序号 == 12 then
		消息开关 = false
	elseif 序号 == 13 then
		消息开关 = true
	elseif 序号 == 14 then
		tp.主界面.界面数据[30]:刷新(内容)--继续测试
	elseif 序号 == 20 then

		tp.主界面.界面数据[8]:添加对话(内容)
	elseif 序号 == 21 or 序号 == 9 or 序号 == 210 then
		tp.窗口.聊天框类:添加文本(内容)
	elseif 序号 == 22 then
		self.临时聊天 = 内容
		tp.窗口.聊天框类:添加文本("#r/以下为本场战斗信息：")
		for n = 1, #self.临时聊天, 1 do
			tp.窗口.聊天框类:添加文本("")
			tp.窗口.聊天框类:添加文本(self.临时聊天[n])
		end
	elseif 序号 == 23 then -- 当前 + 附近  1015 + 21
		self.临时消息 = 内容
		if yxjc == 2 then
			tp.屏幕.玩家类:添加发言内容(self.临时消息.id, self.临时消息.消息)
		elseif yxjc == 3 then
			tp.战斗类:添加发言内容(self.临时消息.id, self.临时消息.消息)
		end
		tp.窗口.聊天框类:添加文本("#dq/#w/[" .. self.临时消息.name .. "]" .. self.临时消息.消息)

	elseif 序号 == 1001 then
		local mapdata = self.传送数据[内容]
		tp.地图:跳转地图({
			音乐 = mapdata.音乐 and "0x".. mapdata.音乐 or mapdata.音乐,
			编号 = 内容,
			名称 = mapdata.名称,
			传送圈 = mapdata.传送圈
		})
		if self.地图数据[内容] ~= nil then
			local npc = self.地图数据[内容].npc
			if npc ~= nil then
				local npcs = {}
				for k = 1, #npc do
					npcs[k] = self.NPC数据[npc[k]]
				end
				tp.地图:添加npc(npcs)
			end
		end
	elseif 序号 == 1002 then
		tp.屏幕.主角:添加移动路径(内容)
	elseif 序号 == 1003 then
		tp.屏幕.主角:更新气血数据(内容)
	elseif 序号 == 1004 then
		tp.屏幕.玩家类:添加玩家(内容)
	elseif 序号 == 1005 then
		tp.屏幕.玩家类:添加路径(内容)
	elseif 序号 == 1008 then
		tp.屏幕.玩家类:删除玩家(内容)
	-- elseif 序号 == 1010 then
		-- tp.地图:添加npc(内容)
	elseif 序号 == 1012 then
		tp.屏幕.玩家类:更改战斗(内容 + 0, true)
	elseif 序号 == 1013 then
		tp.屏幕.玩家类:更改战斗(内容 + 0, false)
	elseif 序号 == 1014 then
		self.临时消息 = 内容
		if yxjc == 2 then
			tp.屏幕.主角:添加发言内容(self.临时消息.消息)
		elseif yxjc == 3 then
			tp.战斗类:添加发言内容(self.临时消息.id, self.临时消息.消息)
		end
	elseif 序号 == 1015 then
		self.临时消息 = 内容
		if yxjc == 2 then
			tp.屏幕.玩家类:添加发言内容(self.临时消息.id, self.临时消息.消息)
		elseif yxjc == 3 then
			tp.战斗类:添加发言内容(self.临时消息.id, self.临时消息.消息)
		end
	elseif 序号 == 1016 then
		tp.屏幕.玩家类:更换武器(内容)
	elseif 序号 == 1017 then
		self.临时消息 = 内容
		tp.地图:添加单位1(self.临时消息)
	elseif 序号 == 1018 then
		self.临时消息 = 内容
		tp.地图:移除单位(self.临时消息 + 0)
	elseif 序号 == 1019 then
		self.临时消息 = 内容
		tp.地图:添加单位(self.临时消息)
	elseif 序号 == 1020 then
		tp.屏幕.主角:添加队友路径(内容)
	elseif 序号 == 2002 then
		tp.主界面.界面数据[1]:刷新(内容)
	elseif 序号 == 2004 then
		tp.屏幕.主角:播放升级动画()
	elseif 序号 == 2005 then
		tp.窗口.人物框:刷新召唤兽头像(内容)
	elseif 序号 == 2006 then
		tp.主界面.界面数据[2]:刷新(内容)
	elseif 序号 == 2007 then
		tp.主界面.界面数据[2]:更改参战(内容, true)
	elseif 序号 == 2008 then
		tp.主界面.界面数据[2]:更改参战(内容, false)
	elseif 序号 == 2009 then
		tp.主界面.界面数据[2]:刷新数据(内容)
	elseif 序号 == 2010 then
		tp.屏幕.主角:更改武器(内容)
	elseif 序号 == 2011 then
		if tp.主界面 ~= nil then
			tp.主界面.界面数据[6]:刷新(内容)
		end
	elseif 序号 == 2012 then
		tp.屏幕.主角:更改称谓(内容)
	elseif 序号 == 2013 then
		self.临时坐标 = 内容
		tp.屏幕.主角:获取移动路径1(self.临时坐标, 全局dt)
	elseif 序号 == 2014 then
		tp.屏幕.主角:更改坐标(内容)
	elseif 序号 == 2015 then
		tp.窗口.人物框:刷新召唤兽气血(内容)
	elseif 序号 == 2016 then
		tp.主界面.界面数据[12]:刷新(内容)
	elseif 序号 == 2017 then
		tp.窗口.人物框:刷新角色头像()
	elseif 序号 == 2018 then
		tp.主界面.界面数据[16]:刷新(内容)
	elseif 序号 == 2019 then
		tp.主界面.界面数据[17]:刷新(内容)
	elseif 序号 == 2020 then
		tp.屏幕.主角:更改染色(内容)
	elseif 序号 == 2022 then
		tp.主界面.界面数据[27]:刷新(内容)
   elseif 序号==2074 then
	   local 临时文本  =内容
	  tp.主界面.快捷技能栏数据 =table.loadstring(table.tostring(临时文本.快捷技能))
	elseif 序号 == 3001 then
		tp.主界面.界面数据[3]:刷新(内容)
	elseif 序号 == 3002 then
		tp.主界面.界面数据[4]:添加召唤兽(内容)
	elseif 序号 == 3003 then
		tp.主界面.界面数据[4]:添加道具(内容)
	elseif 序号 == 3004 then
		tp.主界面.界面数据[4]:刷新()
	elseif 序号 == 3005 then
		tp.主界面.界面数据[5]:刷新(内容)
	elseif 序号 == 3006 then
		if tp.主界面.界面数据[3].本类开关 then
			客户端:发送数据(tp.主界面.界面数据[3].类型编号, 1, 13, "9", 1)
		end
	elseif 序号 == 3009 then
		tp.主界面.界面数据[14]:刷新(内容)
	elseif 序号 == 3010 then
		tp.主界面.界面数据[14]:刷新仓库(内容)
	elseif 序号 == 3011 then
		tp.主界面.界面数据[18]:刷新(内容)
	elseif 序号 == 3012 then
		tp.窗口.染色:打开(内容)
	elseif 序号 == 3013 then
		tp.主界面.界面数据[20]:刷新()
		tp.主界面.界面数据[20]:刷新道具(内容)
	elseif 序号 == 3014 then
		tp.主界面.界面数据[20]:刷新道具(内容)
	elseif 序号 == 3015 then
		tp.主界面.界面数据[20]:刷新召唤兽(内容)
	elseif 序号 == 3016 or 序号 == 3018 then
		tp.主界面.界面数据[20].本类开关 = false
		交易银两输入:置可视(false, "交易银两输入")
	elseif 序号 == 3017 then
		tp.主界面.界面数据[20]:刷新交易数据(内容)
	elseif 序号 == 3019 then
		tp.主界面.界面数据[26]:刷新(内容)
	elseif 序号 == 3030 then
		if tp.主界面.界面数据[1].本类开关 then
			客户端:发送数据(0, 1, 5, 0, 1)
		end
	elseif 序号 == 3039 then
		tp.主界面.界面数据[11]:刷新(内容)
	elseif 序号 == 3040 then
		if tp.主界面.界面数据[2].本类开关 then
			客户端:发送数据(6, 1, 22, "6A", 1)
		end
	elseif 序号 == 5001 then
		组队开关 = true
		鼠标动画.显示序列 = 6
	elseif 序号 == 5002 then
		tp.屏幕.主角:添加队长动画(true)
	elseif 序号 == 5003 then
		tp.屏幕.主角:添加队长动画(false)
	elseif 序号 == 5004 then
		tp.屏幕.玩家类:更改队长(内容 + 0, true)
	elseif 序号 == 5005 then
		tp.屏幕.玩家类:更改队长(内容 + 0, false)
	elseif 序号 == 5006 then
		tp.主界面.界面数据[7]:刷新(内容)
	elseif 序号 == 5007 then
		tp.主界面.界面数据[7]:刷新阵法(内容)
	elseif 序号 == 5008 then
		tp.主界面.界面数据[7]:刷新阵法界面(内容)
	elseif 序号 == 5009 then
		tp.窗口.人物框:添加队伍(内容)
	elseif 序号 == 5010 then
		tp.主界面.界面数据[7]:刷新请求列表(内容)
	elseif 序号 == 5011 then
		tp.主界面.界面数据[7].本类开关 = false
	elseif 序号 == 6001 then
		队伍id = 内容 + 0
	elseif 序号 == 6002 then
		tp.战斗类:准备战斗()
		tp.战斗类.单位总数 = 内容 + 0
		self:发送数据(3, 231, 24, "77", 0)
	elseif 序号 == 6003 then
		tp.战斗类:添加单位(内容)
	elseif 序号 == 6004 then
		tp.战斗类:设置命令回合(内容)
	elseif 序号 == 6005 then
		tp.战斗类:设置执行回合(内容)
	elseif 序号 == 6006 then
		tp.战斗类:更新状态组(内容)
	elseif 序号 == 6007 then
		tp.战斗类:退出战斗()
	elseif 序号 == 6008 then
		tp.战斗类:刷新道具数据(内容)
	elseif 序号 == 6011 then
		tp.战斗类:刷新法宝数据(内容)
	elseif 序号 == 6009 then
		tp.战斗类:刷新召唤数据(内容)
	elseif 序号 == 6010 then
		tp.战斗类:准备战斗(1)
		tp.战斗类.单位总数 = 内容 + 0
		self:发送数据(3, 231, 24, "77", 0)
	elseif 序号 == 9001 then
		tp.主界面.界面数据[9]:刷新(内容)
	elseif 序号 == 10002 then
		tp.主界面.界面数据[23].本类开关 = true
	elseif 序号 == 10003 then
		tp.主界面.界面数据[23]:刷新()
	elseif 序号 == 10004 then
		tp.主界面.界面数据[23]:选定结果(内容)
	elseif 序号 == 11001 then
		tp.主界面.界面数据[24]:刷新(内容)
	elseif 序号 == 10001 then
		tp.窗口.任务栏:打开(内容)
	elseif 序号 == 11004 then
		tp.主界面.界面数据[24]:刷新玩家道具(内容)
	elseif 序号 == 11005 then
		tp.主界面.界面数据[24]:刷新柜台道具(内容)
	elseif 序号 == 11006 then
		if tp.主界面.界面数据[24].本类开关 then
			tp.主界面.界面数据[24].暂停营业.文字 = "开始营业"
		end
	elseif 序号 == 11007 then
		if tp.主界面.界面数据[24].本类开关 then
			tp.主界面.界面数据[24].暂停营业.文字 = "暂停营业"
		end
	elseif 序号 == 11009 then
		tp.主界面.界面数据[25]:刷新(内容)
	elseif 序号 == 11010 then
		tp.主界面.界面数据[25]:创建购买界面(内容)
	elseif 序号 == 11011 then
		tp.主界面.界面数据[28]:刷新(内容)
	elseif 序号 == 11012 then
		tp.主界面.界面数据[29]:刷新(内容)
    elseif 序号==11015 then
      tp.窗口.任务栏:刷新(内容)
	elseif 序号 == 20001 then
		tp.主界面.界面数据[31]:刷新(内容)
	elseif 序号 == 20002 then
		tp.主界面.界面数据[31]:刷新道具(内容)
	elseif 序号 == 20003 then
		tp.主界面.界面数据[31]:刷新道具状态(内容)
	elseif 序号 == 20004 then
		tp.主界面.界面数据[31]:移除道具(内容)
	elseif 序号 == 20005 then
		tp.主界面.界面数据[31]:刷新bb(内容)
	elseif 序号 == 20006 then
		tp.主界面.界面数据[31]:刷新bb状态(内容)
	elseif 序号 == 20007 then
		tp.主界面.界面数据[31]:移除bb(内容)
	elseif 序号 == 20008 then
		tp.屏幕.主角:添加摊位名称(内容)
	elseif 序号 == 20009 then
		tp.屏幕.玩家类:更换摊位名称(内容)
	elseif 序号 == 20010 then
		tp.主界面.界面数据[32]:刷新(内容)
	elseif 序号 == 20011 then
		tp.主界面.界面数据[32]:刷新道具(内容)
	elseif 序号 == 20012 then
		if tp.主界面.界面数据[31].本类开关 and tp.主界面.界面数据[31].显示类型 == 1 then
			客户端:发送数据(42, 4, 44, "1", 1)
		end
	elseif 序号 == 20013 then
		tp.主界面.界面数据[32]:刷新bb(内容)
	elseif 序号 == 20014 then
		if tp.主界面.界面数据[31].本类开关 and tp.主界面.界面数据[31].显示类型 == 2 then
			客户端:发送数据(42, 5, 44, "1", 1)
		end
	elseif 序号 == 20015 then
		tp.主界面.界面数据[31]:更新bb状态(内容)
	elseif 序号 == 20016 then
		tp.主界面.界面数据[31]:关闭界面()
	elseif 序号 == 20017 then
		tp.主界面.界面数据[33]:刷新(内容)
	elseif 序号 == 20018 then
		tp.主界面.界面数据[34]:刷新(内容)
	elseif 序号 == 20019 then
		tp.主界面.界面数据[36]:刷新(内容)
	elseif 序号 == 20020 then
		tp.主界面.界面数据[37]:刷新(内容)
	elseif 序号 == 20021 then
		tp.主界面.界面数据[38]:刷新(内容)
	elseif 序号 == 20022 then
		tp.主界面.界面数据[40]:刷新(内容)
	elseif 序号 == 20023 then
		tp.主界面.界面数据[40].本类开关 = false
		tp.主界面.界面数据[39].本类开关 = false
		tp.主界面.界面数据[38].本类开关 = false
		tp.主界面.界面数据[37].本类开关 = false
	elseif 序号 == 20024 then
		tp.主界面.界面数据[41]:刷新(内容)
	elseif 序号 == 20025 then
		tp.主界面.界面数据[39]:刷新(内容)
	elseif 序号 == 20026 then
		tp.主界面.界面数据[42]:刷新(内容)
	elseif 序号 == 20027 then
		tp.主界面.界面数据[3]:刷新灵饰(内容)
	elseif 序号 == 20028 then
		self.解密数据 = 内容
		聊天内容输入:添加文本(self.解密数据)
	elseif 序号 == 20030 then
		tp.主界面.界面数据[43]:刷新坐骑(内容)
	elseif 序号 == 20031 then
		tp.主界面.界面数据[43]:刷新指定坐骑(内容)
	elseif 序号 == 20034 then
       tp.主界面.界面数据[45]:打开(内容)
	elseif 序号 == 20035 then
       tp.主界面.界面数据[45]:刷新(内容)
	elseif 序号 == 20036 then
       tp.主界面.界面数据[45]:刷新宝宝(内容)
    elseif 序号 == 20037 then
       tp.主界面.界面数据[49]:打开(内容)
    elseif 序号 == 20038 then
       tp.主界面.界面数据[50]:打开(内容)
     elseif 序号 == 20039 then
		tp.主界面.界面数据[3]:刷新锦衣(内容)
  	elseif 序号 == 20040 then
		tp.主界面.界面数据[51]:刷新(内容)
  	elseif 序号 == 20041 then
		tp.窗口.奇经八脉:打开(内容)
  	elseif 序号 == 20042 then
		tp.窗口.奇经八脉:刷新(内容)
    elseif 序号==9960 or 序号==9957 then
     	tp.主界面.快捷技能栏数据={}
	elseif 序号 == 20043 then
       tp.主界面.界面数据[45]:刷新(内容)
	elseif 序号 == 20044 then
       tp.主界面.界面数据[45]:刷新(内容)
	elseif 序号 == 20045 then
       tp.主界面.界面数据[45]:刷新(内容)
	elseif 序号 == 20046 then
       tp.主界面.界面数据[45]:刷新(内容)
	elseif 序号 == 20047 then
       tp.主界面.界面数据[45]:刷新(内容)
    elseif 序号 == 20048 then
		tp.主界面.界面数据[52]:打开(内容)
	end
	序号, 内容, 时间 = nil

end

function 回调:显示(x, y)
end

return 回调
